home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 2: CDPD 1
/
Almathera Ten on Ten - Disc 2: CDPD 1.iso
/
pd
/
276-300
/
299
/
rxil
/
src
/
check_result.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-03-14
|
2KB
|
79 lines
/* check_result.c */
/* Copyright © 1989 by Donald T. Meyer, Stormgate Software
* All Rights Reserved
*/
#include "rxil.h"
/* NAME
* RxilCheckResult
*
* SYNOPSIS
* RxilCheckResult( rexxmsg );
*
* struct RexxMsg *rexxmsg;
*
* FUNCTION
* Verify that the secondary result field in a RexxMsg is
* appropriatly set.
* This should be called for a RexxMsg just prior to replying
* it. This will deal with the case of a result string being
* set when the calling program did not request it.
* It will be freed, and an error code
* set to indicate to the calling program that it should be
* requesting a result for this command.
*
* INPUTS
* rexxmsg = pointer to the RexxMsg structure to be checked.
*
* RESULT
* None
*
* SIDES
*
* HISTORY
* 01-Aug-89 Creation.
*
* BUGS
*
* SEE ALSO
*
*/
/* This function will ensure that we have not set a result string
* to be returned back to ARexx if one was not requested.
*/
void RxilCheckResult( struct RexxMsg *rexxmsg )
{
/* Make sure that we don't return an argstring
* if one was not requested
*/
if( FlagIsSet( rexxmsg->rm_Action, RXFF_RESULT ) )
{
/* Result string wanted */
return;
}
/* A result string was not requested. Let's see if there is one */
if( (rexxmsg->rm_Result1==0) && (rexxmsg->rm_Result2!=0) )
{
/* There is one, so we need to delete it. */
DeleteArgstring( (struct RexxArg *)(rexxmsg->rm_Result2) );
rexxmsg->rm_Result2 = 0;
/* Then send an error back to the ARexx program, telling it
* that it needs to request a result, since this command
* wants to return one!
*/
rexxmsg->rm_Result1 = RXERR_REQUIRES_RESULT_FLAG;
}
}